GitHub是为开发者提供 Git仓库的托管服务。这是一个让开发者与 朋友、同事、同学及陌生人共享代码的完美场所。GitHub这一服务，为开源世界带来了社会化编程的概念。这一概念 影响了全世界众多程序员，说其是软件开发方法的一次革命都不为过。

下面看下怎么使用GitHub： 
使用github前需要先创建 GitHub 账户，网址：https://github.com 
创建github账号后创建新的repository，这个就大家自己去创建了，这不是本文的重点。
####################################################################################
一、新建一个目录：
mkdir -p git/kite.github.com
cd kite.github.com/
####################################################################################
二、首先来设置使用 Git 时的姓名和邮箱地址：
git config  --global user.name "your_userid"
git config  --global user.email "your_email"
####################################################################################
三、要使用Git进行版本管理，必须先初始化仓库。Git是使用git init命令进行初始化：
git init

如果初始化成功，目录下就会生成 .git 目 录。并且提示： 
Initialized empty Git repository in /xxxxxxx/.git/ 
这个 .git 目录里存储着管理当前目录内容所需的仓库数，这个目录默认是隐藏的。 
ls -a命令可以查看到
####################################################################################
现在我们编写一个README文件： 
vi README 
内容如下： 
hello GitHub

使用 git status 命令，你将看到一个新的未跟踪文件。 
每一个文件都不外乎这两种状态：已跟踪或未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件，在上一次快照中有它们的记录，在工作一段时间后，它们的状态可能处于未修改，已修改或已放入暂存区（暂存区是提交之前的一个临时区域）。 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件，它们既不存在于上次快照的记录中，也没有放入暂存区。这样的处理让你不必担心将生成的二进制文件或其它不想被跟踪的文件包含进来。 
git status命令用于显示 Git 仓库的状态。这是一个十分常用的 命令，请务必牢记。
####################################################################################
四、要想让文件成为 Git仓库的管理对象，就需要用 git add命令将其 加入暂存区中：
git add README
####################################################################################
那么，如何将文件提交到GitHub管理呢？ 
五、创建SSH密钥： 
GitHub上连接已有仓库时的认证，是通过使用了SSH的公开密钥 认证方式进行的：
ssh-keygen -C 'your_email' -t rsa

在用户目录下（如我的:/home/kite/.ssh/）就会出现两个文件： 
id_rsa 文件是私有密钥，不能泄露出去 
id_rsa.pub 是公开密钥，可以放心地告诉任何人。

打开id_rsa.pub，复制里面的内容。
网页登陆GitHub，打开“Setting”
点击“SSH and GPG keys”
点击“New SSH Keys”页面： 
填上任意Title，
在Key文本框里粘贴id_rsa.pub文件的内容
点“Add Key”，就ok了。

添加成功之后，创建账户时所用的邮箱会接到一封提示“公共密钥 添加完成”的邮件。 完成以上设置后，就可以用手中的私人密钥与GitHub进行认证和 通信了。测试连接试一试：
####################################################################################
测试以上公钥是否生效
ssh -v git@github.com

出现如下结果即为成功： 
You’ve successfully authenticated, but GitHub does not provide shell access
####################################################################################
六、添加远程仓库：
git remote add origin git@github.com:your_userid/your_repository_name

添加后，远程库的名字就是origin，这是Git默认的叫法。 
针对这个repository，只是第一次操作的时候需要，后面再次对repository进行项目提交时，并不需要重复这个操作。
####################################################################################
七、提交项目：
git commit -m 'first commit'

-m 参数后的 “first commit”称作提交信息，是对这个提交的概述。 
如果想要记述得更加详 细，请不加 -m，直接执行 git commit命令。 
执行后编辑器就会启动编辑器中记述提交信息的格式如下： 
● 第一行：用一行文字简述提交的更改内容  
● 第二行：空行  
● 第三行以后：记述更改的原因和详细内

####################################################################################
八、把本地库的内容推送到远程库上：
git push origin master

把本地库的内容推送到远程，用git push命令，实际上是把当前分支master推送到远程。 
现在，你就拥有了真正的分布式版本库！ 
在 GitHub上公开代码后，前来参考的程序员可能来自世界任何地方，所以请不要使用汉字，尽量用英文进行描述。

现在，网页上登录GitHub，打开repository，将会看到一个README文件，也就是我们上传的文件。

那既然能添加文件了，那怎么删除文件呢？
####################################################################################
九、删除项目： 
删除文件：
rm README

使用 git status 命令，你将看到一个新的未跟踪文件

On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    deleted:    README

no changes added to commit (use "git add" and/or "git commit -a")12345678
####################################################################################
使用命令开始跟踪一个文件 
这里我们是删除
git rm README

此时再运行 git status 命令，会看到 README 文件已被跟踪 
最后提交上去即可：

git commit -m 'delete file'
git push origin master
####################################################################################
如果只是想在暂存区删除文件跟踪，不想删除本地文件，使用命令： 
git rm –cached README 
 这样commit的时候不会提交这个文件。
####################################################################################
十、查看日志： 
git log命令可以查看以往仓库中提交的日志。
####################################################################################
十一、获取远程仓库： 
首先我们换到其他目录下，将 GitHub上的仓库使用git clone命令 clone到本地。

git clone git@github.com:your_userid/your_repository_name

注意不要与之前操作的仓库在同一目录下。
####################################################################################
后记
添加一个完整项目到GitHub：

一般我们总会有些文件无需纳入 Git 的管理，也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件，比如日志文件，或者编译过程中创建的临时文件等。 
创建gitignore隱藏文件
####################################################################################
vi .gitignore

写入：

.gitignore 
*.[oa]
*.o.d

表示为：gitignore本身文件 
第一行告诉 Git 忽略 
第二行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。 
第三行告诉 Git 忽略所有以.o.d结尾的文件 
.gitignore的格式规范： 
A：#为注释 
B：可以使用shell所使用的正则表达式来进行模式匹配 
C：匹配模式最后跟”/”说明要忽略的是目录  
D：使用！取反（例如目录中包含  test.a，并且gitignore文件中包含  *.[oa]，如果在文件中加入 ！test.a   表明忽略除test.a文件以外的后缀名为.a或者.o的文件）

然后把项目代码复制到目录下：
cp -r /work/apply/v4l2_camera/* .

添加到暂存区：
git add *

最后提交即可：
git commit -m 'add camera code'
git push origin master

最后在我的GitHub即可看到代码： 
https://github.com/Guet-Bantao/camera
--------------------
本文来自 风筝丶 的CSDN 博客 ，全文地址请点击：https://blog.csdn.net/Guet_Kite/article/details/78759737?utm_source=copy 
